From: Tassilo Horn Date: Wed, 25 Dec 2013 09:12:24 +0000 (+0100) Subject: Rephrase lexical binding requirement sentence. X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1^2~5^2~1787 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=ff1c842a9477dee39fa20f885d64288b4947a040;p=emacs.git Rephrase lexical binding requirement sentence. * doc/lispref/control.texi (Pattern matching case statement): Rephrase lexical binding requirement: the example needs it, not `pcase' itself. --- diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 595102bb5ef..738dd417fd2 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,8 @@ +2013-12-25 Tassilo Horn + + * control.texi (Pattern matching case statement): Rephrase lexical + binding requirement: the example needs it, not `pcase' itself. + 2013-12-25 Chong Yidong * eval.texi (Eval): Document the LEXICAL arg to eval. diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index a9e7236fc3a..f5cdd3dc80f 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi @@ -342,19 +342,20 @@ third elements and binds them to the variables @code{x} and @code{y}. @code{(pred numberp)} is a pattern that simply checks that @code{exp} is a number, and @code{_} is the catch-all pattern that matches anything. +Note that the the lambda being the result of the @code{fn} clause is a +closure (@pxref{Closures}), so the file defining @code{evaluate} must +have lexical binding enabled (@pxref{Using Lexical Binding}, for how +to enable it). + Here are some sample programs including their evaluation results: @example (evaluate '(add 1 2) nil) ;=> 3 (evaluate '(add x y) '((x . 1) (y . 2))) ;=> 3 (evaluate '(call (fn x (add 1 x)) 2) nil) ;=> 3 -(evaluate '(sub 1 2) nil) ;=> (error "Unknown expression (sub 1 2)") +(evaluate '(sub 1 2) nil) ;=> error @end example -Note that (parts of) @code{pcase} only work as expected with lexical -binding, so lisp files using @code{pcase} should have enable it -(@pxref{Using Lexical Binding}, for how to enable lexical binding). - There are two kinds of patterns involved in @code{pcase}, called @emph{U-patterns} and @emph{Q-patterns}. The @var{upattern} mentioned above are U-patterns and can take the following forms: